/*************************************************************************
    > File Name    : KeyRecommander.h
    > Author       : LiuLei
    > Mail         : 2261459486@qq.com 
    > Created Time : 2022年11月30日 星期三 10时39分00秒
 ************************************************************************/

#ifndef __LL_KEYRECOMMANDER_H__
#define __LL_KEYRECOMMANDER_H__

#include "Dictionary.h"
#include <string>
using std::string;

class Dictionary;

class KeyRecommander
{
public:
    KeyRecommander(Dictionary *dict = Dictionary::createInstance());
    ~KeyRecommander();
    string doQuery(const string &query);                        // 执行查询

private:
    int distance(const string &rhs);                            // 计算最小编辑距离
    int triple_min(const int &a, const int &b, const int &c);

    size_t getUtf8ByteNum(const char byte);
    size_t getUtf8CharNum(const string &str);

private:
    Dictionary      *_dict;

    string          _queryWord;
};

#endif
